home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / amigaos4_only / ifxlite / imagefx3 / rexx / timelapse.ifx < prev    next >
Text File  |  2004-08-03  |  2KB  |  92 lines

  1. /*
  2.  * $VER: TimeLapse 1.00.00 (24.9.92)
  3.  *
  4.  * Arexx program for the ImageFX image processing system.
  5.  * Written by Thomas Krehbiel
  6.  *
  7.  * This program will capture a frame from any of the framegrabber
  8.  * modules at intervals, render and save the frames out to an
  9.  * animation.
  10.  *
  11.  */
  12.  
  13. OPTIONS RESULTS
  14.  
  15. SIGNAL ON BREAK_C
  16.  
  17. /*
  18.  * Make sure we have a framegrabber-type scanner module.
  19.  */
  20. GetScanner
  21. IF (result ~= 'FrameGrabber') & (result ~= 'IVFG') THEN DO
  22.    RequestNotify 'This program requires a framegrabber module.'
  23.    SetScanner
  24.    IF rc ~= 0 THEN EXIT
  25.    END
  26.  
  27.  
  28. /*
  29.  * And make sure we have an appropriate Render module.
  30.  */
  31. GetRender
  32. IF (result ~= 'Amiga') & (result ~= 'Amiga2.0') THEN DO
  33.    RequestNotify 'This program requires either Amiga render module.'
  34.    SetRender
  35.    IF rc ~= 0 THEN EXIT
  36.    END
  37.  
  38. /*
  39.  * Get time lapse interval in seconds.  Keep in mind that it may
  40.  * take a moment or two to capture a frame, render it, and then
  41.  * save it to an animation.
  42.  */
  43. RequestNumber '"Time Lapse Interval (Seconds):"' 0 600 10
  44. IF rc ~= 0 THEN EXIT
  45. lapse = result
  46.  
  47. /*
  48.  * Get output animation filename.
  49.  */
  50. RequestFile '"Output Animation Filename:"'
  51. IF rc ~= 0 THEN EXIT
  52. output = result
  53.  
  54. IF EXISTS(output) THEN DO
  55.    RequestResponse 'Output animation exists.  Overwrite?'
  56.    IF rc ~= 0 THEN EXIT
  57.    ADDRESS COMMAND 'c:Delete >NIL:' output
  58.    END
  59.  
  60. /*
  61.  * Make sure we generate a palette for the first frame.
  62.  */
  63. LockRange 0 OFF
  64.  
  65. /*
  66.  * Now loop until the user aborts the script.
  67.  */
  68. i = 1
  69. DO FOREVER
  70.  
  71.    Message 'Frame' i
  72.    i = i + 1
  73.  
  74.    Scanner Grab
  75.  
  76.    Render Go
  77.    SaveRenderedAs ANIM '"'output'"' Append Keep
  78.    Render Close
  79.  
  80.    /* Lock palette on frames 2 and beyond */
  81.    LockRange 0 ON
  82.  
  83.    IF lapse ~= 0 THEN ADDRESS COMMAND 'c:Wait' lapse
  84.  
  85.    END
  86.  
  87. BREAK_C:
  88.  
  89. SaveRenderedAs ANIM '"'output'"' Close
  90.  
  91. EXIT
  92.